package cn.jiedanba.cacert.model;

import java.io.Serializable;
import java.util.Date;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 证书注销
 * 
 * @author
 */

@Data
@Table("tb_cert_revoke")
@Accessors(chain = true)
public class CertRevoke implements Serializable {

	@Id(keyType = KeyType.Generator, value = "snowflake")
	private String id;

	/**
	 * 证书Id
	 */

	private String certId;

	/**
	 * 颁发者ID
	 */

	private String rootId;

	/**
	 * 证书序列号
	 */
	private String serialNumber;

	/**
	 * 证书吊销时间
	 */

	private Date revokeDate;

	/**
	 * 证书吊销理由 0 ：未指定原因（unspecified） 1 ：密钥被泄露（keyCompromise） 2
	 * ：CA私钥泄露（CACompromise） 3 ：证书持有者归属关系发生变化（affiliationChanged） 4
	 * ：证书已经被替代（superseded） 5 ：证书持有者停止运营（cessationOfOperation） 6
	 * ：证书暂停使用（certificateHold） 8 ：从 CRL 中移除（removeFromCRL） 9
	 * ：权限撤销（privilegeWithdrawn） 10：AA密钥被泄露（aACompromise）
	 */
	private Integer reason;

	private Date createDate;

	private Date updateDate;

	private Boolean isCrl;

	private static final long serialVersionUID = 1L;

}